Many computing devices, including mobile devices such as tablets and smart phones, receive input through an input device, such as a “touch screen.” Multiple hardware, firmware, and software components may participate in the processing associated with the operation of an input device, such as a touch screen. For example, a touch sensing unit implemented in hardware and firmware may detect touch inputs, generate touch data describing the touch inputs, and transmit the touch data to low-level software controlled by the operating system, such as a touch screen input driver. The low-level software may perform additional processing of the touch data, such as noise filtering, before passing the processed touch data to a higher-level software module, such as an application.
The processing performed by components of a computing device may not be instantaneous. Rather, a period of time may elapse between initiation of the processing (e.g., provision of inputs to the component) and completion of the processing (e.g., provision of outputs by the component). This processing period may generally be referred to as a “latency” or “lag” of the component. Each component that participates in the processing associated with the operation of a touch screen may contribute to the total system latency, also referred to as “touch responsiveness” or “input lag. To decrease the latency, input devices, such as touch screens may use various predictive techniques to estimate, or predict, future inputs based on prior received inputs.